home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2007 March
/
PCWorld_2007-03_cd.bin
/
domacnost a kancelar
/
scribus
/
scribus-1.3.3.7-win32-install.exe
/
share
/
samples
/
quote.py
< prev
next >
Wrap
Text File
|
2005-02-22
|
2KB
|
76 lines
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
""" This script changes quotation marks from " " to french style """
import sys
try:
from scribus import *
except ImportError:
print "This script only runs from within Scribus."
sys.exit(1)
import re
TITLE = "Text quoting"
# These need to be declared as unicode strings until some
# charset issues in the scripter are worked out.
QUOTE_START = u""
QUOTE_END = u""
def quote(textobj):
quoted_re = re.compile('"[^"]*"')
try:
text = getText(textobj)
except WrongFrameTypeError:
messageBox("quote.py", "Cannot quote text in a non-text frame", ICON_INFORMATION);
sys.exit(1)
if len(text) == 0:
return 0 # We can't very well change anything in an empty frame
count = 0
i = 0
selectText(0, 0, textobj)
while i < len(text):
match = quoted_re.match(text[i:])
if match:
end = match.end()
selectText(i, 1, textobj)
deleteText(textobj)
insertText(QUOTE_START, i, textobj)
selectText(i + end - 1, 1, textobj)
deleteText(textobj)
insertText(QUOTE_END, i + end - 1, textobj)
count += 1
i = i + end
else:
i = i + 1
return count
def main():
changed = 0
sel_count = selectionCount()
if sel_count:
for i in range(sel_count):
changed += quote(getSelectedObject(i))
else:
for page in range(pageCount()):
gotoPage(page)
for obj in getAllObjects():
changed += quote(obj)
messageBox(TITLE, "%s quotations changed" % changed,
ICON_INFORMATION, BUTTON_OK)
if __name__ == '__main__':
if haveDoc():
try:
setRedraw(False)
main()
finally:
setRedraw(True)
redrawAll()
else:
messageBox(TITLE, "No document open", ICON_WARNING, BUTTON_OK)